package pkg

import (
	"context"
	"strconv"
	"time"

	"device-admin/config/redis"
	"device-admin/internal/define"

	"192.168.1.75/go-pkg/helper"
)

// GenerateAuthToken 生成用户token
// 仅仅临时使用，后期售卖后台，要新开发内部调用接口
func GenerateAuthToken() (string, error) {
	// 生成token
	token := helper.Md5(strconv.Itoa(int(time.Now().UnixNano())) + helper.RandString(32))
	// 将token关联信息保存至redis
	rdb := redis.NewDB()
	ctx, cancel := context.WithTimeout(context.Background(), time.Second*3)
	defer cancel()
	_, err := rdb.HSet(ctx, define.UserLoginTokenPrefix+token,
		"user_id", 1,
		"role_id", 1,
		"username", "admin",
		"merchant_id", 1,
		"merchant_name", "",
		"merchant_path", "",
	).Result()
	if err != nil {
		return "", nil
	}
	// 设置token的过期时间-2小时
	rdb.Expire(ctx, define.UserLoginTokenPrefix+token, time.Hour*4)
	return token, nil
}
